# -*- coding: utf-8 -*-
from odoo import api, fields, models
from odoo.exceptions import ValidationError
import datetime


class NewModule(models.TransientModel):
    _name = 'checkin.couch'

    checkin_couch = fields.Many2one(comodel_name='res.users', string='執行教練', required=True)
    checkin_times = fields.Integer(string='上課次數', default=1, required=True)
    checkin_class = fields.Many2one(comodel_name='service.class')

    def check_in_wizard(self):
        checkin = self.env['service.checkin']
        now = datetime.datetime.now()
        end_time = (datetime.datetime.today()).strftime('%Y-%m-%d 23:59:59')
        start_time = (datetime.datetime.today()).strftime('%Y-%m-%d 00:00:00')
        res = checkin.search([('is_kanban_checkin', '=', True), ('checkin_date', '<', end_time),
                              ('checkin_date', '>', start_time), ('kanban_create_company', '=', self.env.user.company_id.id)])
        today_record = self.env['service.checkin.line']
        if len(res) == 0:
            checkin_today = checkin.create({
                'is_kanban_checkin': True,
                'checkin_list': [(0, 0, {
                    'checkin_partner': self.checkin_class.name.id,
                    'checkin_order2': self.checkin_class.id,
                    'checkin_couch': self.checkin_couch.id,
                    'checkin_amount': self.checkin_times,
                    'checkin_rest_amount': self.checkin_class.class_checkin_rest,
                })]
            })
            today_record = checkin_today.checkin_list.id
            self.checkin_class.class_checkin_today = True
            self.checkin_class.today_checkin_time = now
            self.checkin_class.today_checkin_record = today_record
        elif len(res) == 1:
            res.write({
                'checkin_list': [(0, 0, {
                    'checkin_partner': self.checkin_class.name.id,
                    'checkin_order2': self.checkin_class.id,
                    'checkin_couch': self.checkin_couch.id,
                    'checkin_amount': self.checkin_times,
                    'checkin_rest_amount': self.checkin_class.class_checkin_rest,
                })]
            })
            today_record = res.checkin_list.filtered(lambda r: r.checkin_partner.id == self.checkin_class.name.id and
                                                               r.checkin_order2.id == self.checkin_class.id and
                                                               r.checkin_couch.id == self.checkin_couch.id and
                                                               r.checkin_amount == self.checkin_times).id
            self.checkin_class.class_checkin_today = True
            self.checkin_class.today_checkin_time = now
            self.checkin_class.today_checkin_record = today_record
        else:
            raise ValidationError(u"簽到錯誤!!")